package com.molichuxing.gateway.bff.car.services;

import java.util.List;

import com.molichuxing.gateway.bff.car.entity.response.CarDeliveryCheckVo;
import com.molichuxing.gateway.bff.car.entity.response.CarDeliveryVo;
import com.molichuxing.gateway.bff.car.entity.response.CarOrderCheckVo;
import com.molichuxing.gateway.bff.car.entity.response.FenceCheckVo;
import com.molichuxing.gateway.bff.car.entity.response.PdiCheckVo;

/**
 * @Author: yixuelin
 * @Description: 检验bff
 * @Date: Created in 15:08 2019/9/19
 * @Modified By:
 **/
public interface CheckBffService {

    /**
     * 根据订单号查询验车报告
     * @param orderCode
     * @return
     */
    PdiCheckVo getCheckReport(Long orderCode);

    /**
     * 新建交车单
     * @param checkCreateBffVo
     * @return
     */
//    Boolean createCheckVo(HandoverCreateVo checkCreateBffVo) throws BizException, Exception;

    /**
     * 根据车架号获取已行驶里程
     * @param vin
     * @return
     */
    Integer getMileageByVin(String vin) throws Exception;

    /**
     * 交接单预览-车辆和订单信息(大屏)
     * @param orderCode
     * @return
     */
    CarOrderCheckVo getCarOrderCheckVo(Long orderCode,Integer carId) throws Exception;


    /**
     * 交付车辆列表
     *
     * @param orderCode
     * @return
     * @throws Exception
     */
    List<CarDeliveryVo> getDeliveryCarList(Long orderCode) throws Exception;

	/**
	 * 还车交付车辆信息
	 * 
	 * @param orderCode
	 *            订单号
	 * @param deviceNum
	 *            大屏设备编号
	 * @param userId
	 *            用户id
	 * @return
	 * @throws Exception
	 */
	public CarDeliveryVo getReturnCar(Long orderCode, String deviceNum, Integer userId) throws Exception;

	/**
	 * 验证车辆是否在门店围栏
	 * 
	 * @param carId
	 *            车辆id
	 * @param deviceNum
	 *            大屏设备编号
	 * @return
	 * @throws Exception
	 */
	public FenceCheckVo getFenceCheck(Integer carId, String deviceNum) throws Exception;

	/**
	 * 交付车辆检验
	 * 
	 * @param carId
	 *            车辆id
	 * @param deviceNum
	 *            大屏设备编号
	 * @return
	 * @throws Exception
	 */
	public CarDeliveryCheckVo getCarDeliveryCheck(Integer carId, String deviceNum) throws Exception;

}
